package com.zy.imagineCommunity.dao;

import com.zy.imagineCommunity.entity.Chat;
import com.zy.imagineCommunity.entity.ChatText;
import com.zy.imagineCommunity.entity.Post;
import com.zy.imagineCommunity.entity.PostText;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper //mybatis标记注解bean
public interface PostMapper {

    //增加文章
    public int addPost(Post post);

    //根据类型查询总记录数
    public int queryPostCountTotal();

    //根据类型、起始条数、每页个数查询文章
    public List<PostText> queryPostByBeginAndPageSize(int begin, int pageSize);

    //通过id删除帖子
    public int deletePostById(int id);

    PostText queryPostById(int id);

    //根据起始条数、每页个数查询聊天
    public List<ChatText> queryChatTextByPostIdAndBeginAndPageSize(int postId, int begin, int pageSize);

    int queryChatTextCountTotalByPostId(int postId);

    //增加帖子聊天信息
    void addChat(Chat chat);

    /**
     * 通过userId查询个人帖子
     *
     * @param userId
     * @param begin
     * @param pageSize
     * @return
     */
    public List<PostText> queryPostByUserIdAndBeginAndPageSize(int userId, int begin, int pageSize);

    /**
     * 通过个人id查询帖子数量
     *
     * @param userId
     * @return
     */
    public int queryPostCountTotalByUserId(int userId);

    /**
     * 通过postId删除聊天
     *
     * @param postId
     * @return
     */
    public void deleteChatByPostId(int postId);

    /**
     * 通过chatId删除聊天
     *
     * @param chatId
     * @return
     */
    void deleteChatByChatId(int chatId);

    /**
     * 根据模糊标题查询数据
     *
     * @param searchValue
     * @return
     */
    int queryPostCountTotalBySearchValue(String searchValue);

    /**
     * 根据起始数和每页个数、搜寻标题查询帖子
     *
     * @param begin
     * @param pageSize
     * @param searchValue
     * @return
     */
    List<PostText> queryPostByBeginAndPageSizeAndSearchValue(int begin, int pageSize, String searchValue);

    /**
     * 搜索个人帖子数量
     *
     * @param userId
     * @param searchValue
     * @return
     */
    int queryPostCountTotalByUserIdAndSearchValue(int userId, String searchValue);

    /**
     * 搜索个人帖子
     *
     * @param userId
     * @param begin
     * @param pageSize
     * @param searchValue
     * @return
     */
    List<PostText> queryPostByUserIdAndBeginAndPageSizeAndSearchValue(int userId, int begin, int pageSize, String searchValue);

}
